package com.sdleyou.treepro.common.service;

import com.sdleyou.treepro.common.model.vo.UserVO;

import java.util.Map;

public interface UserManager {

    /**
     * 微信登陆
     *
     * @param code
     * @param ip
     * @param inviteUserId
     */
    Map<String, String> login(String code, String avatarUrl, String nickName, String gender, String city, String province, String ip, String inviteUserId);

    /**
     * 添加用户信息
     *
     * @param userId
     * @param userHead
     * @param userName
     * @param userGender
     * @param userCity
     * @param userProvince
     * @return
     */
    Map<String, String> setUserInfo(String userId, String userHead, String userName, String userGender, String userCity, String userProvince);

    /**
     * 获取用户信息
     */
    UserVO userInfo(String userId);

    /**
     * 选择种树类型后更新状态
     */
    Map<String, String> upDateAfterChooseTree(String userId, String treeId);

    /**
     * 养成树之后更新用户状态
     */
    Map<String, String> upDateAfterFinishPlant(String userId);

    /**
     * 已养成树兑换能量
     */
    Map<String, String> exchangeValue(String userId, String treeId);

    /**
     * 员工加入公司
     *
     * @param userId
     * @param companyId
     */
    void joinCompany(String userId, String companyId);

    /**
     * 选择个人身份
     *
     * @param userId
     * @param role
     */
    void chooseRole(String userId, String role);

    /**
     * 减少土地肥沃度
     */
    void subFertility(String userId, Integer times);

    /**
     * 设置用户的经纬度
     *
     * @param longitude
     * @param latitude
     */
    void setLocation(String userId, String longitude, String latitude);

    /**
     * 获取微信步数
     */
    Map<String, Object> getWXStep(String code, String encryptedData, String iv);

    /**
     * 获取分享二维码
     *
     * @param userId
     * @return
     */
    String getQrcode(String userId);

    /**
     * 获取分享海报
     *
     * @param userId
     * @return
     */
    String getSharePoster(String userId);

    /**
     * 用户设置真实姓名
     *
     * @param userId
     * @param realname
     * @return
     */
    void setRealname(String userId, String realname, String idCardNum, String phone);

    /**
     * 获取志愿者证书
     *
     * @param userId
     * @return
     */
    String volunteerCert(String userId);

    /**
     * 获取今日的日签图
     *
     * @param userId
     * @return
     */
    String getTodayLot(String userId);

    /**
     * 增加累计成长值
     * @param userId
     * @return
     */
    void addTotalGrow(String userId, Integer num);

    /**
     * 更新用户的成长值
     */
    void updateUserGrowValue();

    /**
     * 自动生成是水滴
     */
    void updateWater();

    /**
     * 偷水或领取水滴
     * @param userId
     * @param friend_id
     * @return
     */
    Map<String, String> receiveWater(String userId, String friend_id);
}
